
19.06.2017, 22:31
|
Аспирант
|
|
Регистрация: 14.05.2017
Сообщений: 61
|
|
как запретить отправку формы если маил занят.
помогите пожалуйста завершить эту проверку маила на занятость?
$(document).ready(function(){
// Email
$("#email").change(function(){
email = $("#email").val();
$.ajax({
url: "testingLoginEmail.php",
type: "POST",
data: "email=" + email,
cache: false,
success: function(response){
if(response == "no"){
$("#email").next().hide().text("Этот электронный адрес занят!").fadeIn(400);
$("#email").removeClass().addClass("inputRed");
}else{
$("#email").removeClass().addClass("inputGreen");
$("#email").next().text("");
}
}
});
});
$("#email").keyup(function(){
$("#email").removeClass();
$("#email").next().text("");
});
});
|
|

20.06.2017, 02:46
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
А где тут отправление формы? Делайте кнопку отправки формы недоступной по умолчанию, а доступной по результату проверки. Только учтите, что и отправление формы, это опять обязательная проверка сервером, включая и занятость.
А это $("#email").keyup(function() выбросить - одно из двух, либо да, либо нет.
|
|

20.06.2017, 07:13
|
Аспирант
|
|
Регистрация: 14.05.2017
Сообщений: 61
|
|
кнопка отправки формы
<input type="submit" name="submit" value="Отправить" id="submit">
|
|

20.06.2017, 07:19
|
Аспирант
|
|
Регистрация: 14.05.2017
Сообщений: 61
|
|
блокировка кнопки не хотелось бы не будет работать другая валидация пока не активируется кнопка. возможно ли использовать как то return="false"
|
|

20.06.2017, 07:24
|
Аспирант
|
|
Регистрация: 14.05.2017
Сообщений: 61
|
|
у меня на эту форму есть отдельная валидация на другие поля, может есть возможность объединить их?
$(document).ready(function(){
$("#formregist").validate({
// правила для полей с именем и паролем
rules:{
surname:{
required: true, // поле для имени обязательное для заполнения
minlength:2, // Минимальное число символов - 2
},
name:{
required: true, // поле обязательное для заполнения
minlength:2, // Минимальное число символов - 2
},
patronymic:{
required: true, // поле обязательное для заполнения
minlength:2, // Минимальное число символов - 2
},
telephone:{
required: true, // поле обязательное для заполнения
digits:true, // толька цифры
rangelength: [10, 10], // номер телефона должен состоять из 10 цифр!
},
email:{
required: true, // поле обязательное для заполнения
email: true, // Пожалуйста, введите действительный адрес электронной почты
},
password:{
required: true, // поле обязательное для заполнения
minlength: 6, // Минимальное число символов - 6
maxlength:20,// Максимальное число символов -20
},
r_password:{
required: true, // поле обязательное для заполнения
equalTo: "#password",
},
},
// сообщение для поля с именем и пароля, если что-то было не по правилам
messages:{
surname:{
required: " <p class='err'><b>Это поле обязательно для заполнения!</b></p>",
minlength: "<p class='err'><b>Фамилия должно быть не менее 2 символов!</b></p>",
},
name:{
required: " <p class='err'><b>Это поле обязательно для заполнения!</b></p>",
minlength: "<p class='err'><b>Имя должно быть не менее 2 символов!</b></p>",
},
patronymic:{
required: " <p class='err'><b>Это поле обязательно для заполнения!</b></p>",
minlength: "<p class='err'><b>Отчество должно быть не менее 2 символов!</b></p>",
},
telephone:{
required: "<p class='err'><b>Это поле обязательно для заполнения!</b></p>",
digits: "<p class='err'><b>Номер телефона должен состоять только из цифр!</b></p>",
rangelength: "<p class='err'><b>Номер телефона должен состоять из 10 цифр!</b></p> ",
},
email:{
required: "<p class='err'><b>Это поле обязательно для заполнения!</b></p>",
email: "<p class='err'><b>Введите корректный адрес электронной почты!</b></p>",
},
password:{
required: "<p class='err'><b> Это поле обязательно для заполнения!</b></p>",
minlength: "<p class='err'><b>Пароль должен быть не менее 6 символов!</b></p>",
maxlength: "<p class='err'><b>Пароль должно быть не более 20 символов!</b></p>",
},
r_password:{
required: "<p class='err'><b>Это поле обязательно для заполнения</b></p>",
equalTo: "<p class='err'><b>Пароли не совпадают!</b></p>",
},
}
});
});
|
|

20.06.2017, 07:31
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
<input type="submit" value="Отправить" id="send" disabled>
$("#email").change(function(){
var eml = $(this), bt = $("#send");
$.ajax({
url: "testingLoginEmail.php",
type: "POST",
data: "email=" + eml.val(),
cache: false,
success: function(response){
if(response == "no"){
eml.css("colorXXXX", 'red').next().text("Этот электронный адрес занят!").fadeIn(400);
bt.prop("disabled", 1);
}else{
eml.css("colorXXXX", 'green').next().text("");
bt.prop("disabled", 0);
}
}
});
});
|
|

20.06.2017, 07:32
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от daimon0482
|
возможно ли использовать как то return="false"
|
Сохраняйте результат проверки, а при отправке формы проверяйте его. Иначе нет.
|
|

20.06.2017, 21:14
|
Аспирант
|
|
Регистрация: 14.05.2017
Сообщений: 61
|
|
laimas. спасибо за помощь нашел такую концовку проверки:
$.ajax({
url: "testingLoginEmail.php",
type: "POST",
data: "email=" + email,
cache: false,
success: function(response){
if(response == "no"){
$("#email").next().hide().text("Этот электронный адрес занят!").fadeIn(400);
$("#email").removeClass().addClass("inputRed");
}else{
$("#email").removeClass().addClass("inputGreen");
$("#email").next().text("");
emailStat = 1;
buttonOnAndOff();
}
}
});
});
function buttonOnAndOff(){
if( telephoneStat == 1 && emailStat == 1 ){
$("#submit").removeAttr("disabled");
}else{
$("#submit").attr("disabled","disabled");
}
}
});
|
|

20.06.2017, 21:18
|
Аспирант
|
|
Регистрация: 14.05.2017
Сообщений: 61
|
|
как здесь правильнее заменить
disabled
на
return="false"
function buttonOnAndOff(){
if( telephoneStat == 1 && emailStat == 1 ){
$("#submit").removeAttr("disabled");
}else{
$("#submit").attr("disabled","disabled");
}
}
|
|

21.06.2017, 04:09
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от daimon0482
|
нашел такую концовку проверки
|
Я не знаю где вы нашли такую концовку и какую солянку вы хотите сотворить из кусков где-то найденных, но то что это хрень, "зуб даю".
$("#email").change(function() ... это событие наступит после того, как введено, ушли с поля и продолжаем в другом. Событие же отправки формы, это иное событие, и коли запретить отправление формы, то проверка результата проверки занятости и return должна быть до $.ajax.
$("#email").change(function(){
///....
}).data('check', 0);
где 'check' - 0, это поле еще не проверялось, либо проверялось, но результат отрицательный. Соответственно 1, все Ок и форму разрешено отправить. Вот это и нужно проверять.
Последний раз редактировалось laimas, 21.06.2017 в 06:29.
|
|
|
|